#ifndef EGG_LOGMANAGER_H
#define EGG_LOGMANAGER_H

#include "Log.h"
#include "Singleton.h"

namespace egg {

    class LogManager : public Singleton<LogManager>{
        friend class Singleton<LogManager>;
    public:
        ~LogManager();
        void toggle(bool t);
        void setDefault(Log* log);
		Log* getLog(const string& name);
        void destroyLog(const string& name);
		void logMessage(const string& message);
		Log* createLog(const string& name, bool debugOutput, bool fileOutput);
    protected:
        LogManager();
    protected:
		LogMap mLogs;
        Log* mDefaultLog;
    };

    typedef shared_ptr<LogManager> LogManagerPtr;

#define LogMgr LogManager::getSingletonPtr()

}

#endif
